Some operating systems (OSs), such as Fedora and Red Hat Enterprise Linux, are installed using an operating system installer. One example OS installer is Anaconda. While installing the OS, the installed OS may ask certain questions to the user. These questions may include what is your preferred language, which time zone do you follow, which software packages do you want to install on the system other than the default/compulsory ones, what will your username, password, and root password be, and so on.
The answers to these questions can be provided using a plain-text file, which is then passed on to the OS installer. This file is known as a kickstart file. The OS installer then examines this kickstart file whenever it needs to determine an answer to one of the questions it would ask the end user. In order to support different varieties of an OS, a distribution may have a set of kickstart files to choose from, which would then install the OS in different languages, or have a set of packages catering to a type of user. However, these kickstart files are preconfigured and do not cover the individual preferences a user may desire.
In order for end users to customize their operating system, they must wait for the OS to be installed (using the pre-configured kickstart file). The users can then manually download software they would like on their system or change configurations as needed. However, this process can be time-consuming and tedious for the end user. Furthermore, modifying the kickstart file manually is difficult. Research into the desired files that are needed is required, and then complete accuracy is also required when modifying the plain-text file. Any errors in the modification to the kickstart file can cause the whole OS installation to fail. Accordingly, the manual modification process for the kickstart file is quite complicated.